/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controle.gui.frames.internos;

import javax.swing.JComboBox;
import javax.swing.JDesktopPane;
import javax.swing.JOptionPane;
import persistencia.arquivo.ManipulaArquivos;

/**
 *
 * @author Maycon Fernando Silva Brito
 * @email mayconfsbrito@gmail.com
 */
public class ControleArquivoPreferencias {

    private String pathArquivo = "Preferencias.conf";
    ManipulaArquivos arquivo = new ManipulaArquivos();

    /**
     * Verifica se o arquivo de configuracao existe
     */
    public void verificaArquivo(JDesktopPane desktopPanel) {

        /*Cria o arquivo caso o mesmo nao exista*/
        if (!arquivo.exists(pathArquivo)) {
            JOptionPane.showMessageDialog(null,
                    "Novo arquivo sendo criado com preferências definidas como padrões.\n"
                    + "Favor não apagar/editar o arquivo \"Preferencias.conf\".", "Erro no arquivo de configuração!", JOptionPane.WARNING_MESSAGE);
            criaArquivoPreferencias();
        
        } 
        
        
    }

    /**
     * Carrega as preferencias do arquivo
     */
    public void carregaPreferencias(JComboBox comboTransacoes, JComboBox comboImagem) {

        /*Carrega a preferencia do tempo de duracao dos registros de transacoes dos usuarios*/
        String strTemp = arquivo.readLine(pathArquivo, 0);
        comboTransacoes.setSelectedItem(strTemp);

        /*Carrega a preferencia da imagem de deskop*/
        strTemp = arquivo.readLine(pathArquivo, 1);
        strTemp = strTemp.replaceAll(".png", "");
        comboImagem.setSelectedItem(strTemp);
        
    }

    /**
     * Armazena as preferencias definidas nos componentes da GUI
     * @param comboTransacoes 
     */
    public void salvaPreferencias(JComboBox comboTransacoes, JComboBox comboImagem) {

        /*Parametro de tempo de duracao dos registros de transacoes dos usuarios*/
        arquivo.writeLine(pathArquivo, 0, comboTransacoes.getSelectedItem().toString());

        /*Parametro da imagem de desktop*/
        arquivo.writeLine(pathArquivo, 1, comboImagem.getSelectedItem().toString() + ".png");
    
    }

    /**
     * Cria o arquivo de configuracao caso ele nao exista
     */
    public void criaArquivoPreferencias() {

        /*Parametro de validade de registro de transacoes dos usuarios*/
        arquivo.addNewLine(pathArquivo, "Nunca\n");
        
        /*Parametro de imagem de desktop*/
        arquivo.addNewLine(pathArquivo, "Metal 1.png\n");

    }

    /**
     * Captura no arquivo o valor de tempo de armazenamento das transações dos usúarios
     * @return 
     */
    public int getVencimentoTransacoesUsuarios() {
        
        String strTemp = arquivo.readLine(pathArquivo, 0);
        
        if(strTemp.equals("Nunca")){
            return 0;
        } else if(strTemp.equals("15 dias")){
            return 15;
        } else if(strTemp.equals("30 dias")){
            return 30;
        } else if(strTemp.equals("60 dias")){
            return 60;
        } else if(strTemp.equals("160 dias")){
            return 160;
        } else {
            return 365;
        }
        
    }
    
    /**
     * Captura o nome do arquivo de imagem de desktop
     * @return 
     */
    public String getImagemDesktop(){
        
        return arquivo.readLine(pathArquivo, 1);
        
    }
}
